// 导入Express框架
const express = require('express');
// 导入Node.js的文件系统模块
const fs = require('fs');
// 创建一个Express应用
const app = express();

// Middleware to enable CORS
// 设置CORS中间件，允许所有来源的请求访问该服务
app.use((req, res, next) => {
  res.header('Access-Control-Allow-Origin', '*'); // 允许所有来源的请求
  res.header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS'); // 允许的HTTP方法
  res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept'); // 允许的请求头
  next();
});

app.use(express.json()); // 使用Express的内置JSON解析中间件，用于处理请求体中的JSON数据

// Handle OPTIONS requests
// 处理OPTIONS请求，响应200状态码
app.options('/', (req, res) => {
  res.sendStatus(200);
});

// 处理POST请求到根路径'/'
app.post('/api/', (req, res) => {
  const data = req.body; // 从请求体中获取发送过来的JSON数据
  const filename = 'data.txt'; // 定义保存数据的文件名

  // 使用fs模块将数据保存到本地文件
  fs.writeFile(filename, JSON.stringify(data), (err) => {
    if (err) {
      // 如果保存过程出错，返回500状态码并发送错误信息
      console.error('Error saving data:', err);
      res.status(500).send('Error saving data');
    } else {
      // 如果保存成功，返回200状态码
      console.log('Data has been saved to the file.');
      res.sendStatus(200);
    }
  });
});

// 处理GET请求到'/api/data'路径
app.get('/api/data', (req, res) => {
  // ... 处理GET请求到'/api/data'路径的逻辑
});

// 处理POST请求到'/api/save'路径
app.post('/api/save', (req, res) => {
  // ... 处理POST请求到'/api/save'路径的逻辑
});

// 处理PUT请求到'/api/update'路径
app.put('/api/update', (req, res) => {
  // ... 处理PUT请求到'/api/update'路径的逻辑
});

// 处理DELETE请求到'/api/delete'路径
app.delete('/api/delete', (req, res) => {
  // ... 处理DELETE请求到'/api/delete'路径的逻辑
});

// 指定应用监听的端口号，并在启动时打印启动信息
const port = 3000;
app.listen(port, () => {
  console.log(`Server is running on http://localhost:${port}`);
});